//============================================================================================
/**
 * @file	tradelist.h
 * @brief	ポケモン交換リスト画面
 * @author	Akito Mori
 * @date	05.12.08
 */
//============================================================================================
#ifndef _TRADELIST_H_
#define _TRADELIST_H_


//============================================================================================
//	定数定義
//============================================================================================
#include "savedata/friendlist.h"
#include "savedata/wifihistory.h"
#include "savedata/config.h"
#include "savedata/zukanwork.h"
#include "savedata/record.h"


#define TRADELIST_END_FINISH  ( 0 )				///< 交換をやめて終了した
#define TRADELIST_END_DEMO    ( 1 )				///< 交換を成立させてデモにいく

///< 交換リストに行くときに渡すパラメータ構造体
typedef struct TRADE_LIST_PARAM_tag{
	FIELDSYS_WORK *fsys;			///< フィールドシステムポインタ
	MYSTATUS      *mystatus;		///< 主人公情報ポインタ
	POKEPARTY     *myparty;			///< 手持ちポケモン情報ポインタ
	FRIEND_LIST   *friendlist;		///< DS通信友達情報ポインタ
	SAVEDATA      *savedata;		///< セーブデータポインタ
	WIFI_HISTORY  *wifihistory;		///< Wifi接続（地球儀）情報ポインタ
	CONFIG		  *config;			///< コンフィグ構造体
	RECORD		  *record;			///< レコードポインタ
	ZUKAN_WORK    *zukanwork;		///< 図鑑データ
	int			  result;			///< 交換リストからの返り値
									///< TRADELIST_END_FINISH = 交換をやめた
									///< TRADELIST_END_DEMO   = 交換デモへ
	int			  exchangepos;		///< 交換したポケモンの位置

	int			  zukanmode;		///< 図鑑モード（シンオウ・全国)
	int			  times;			///< 交換画面につないだまま何回来ているか(交換デモを通るたびに＋１される）

	// デモ画面用パラメータ（ポインタ受け渡しではなく、実体用領域を確保してあるのでコピーする）
	MYSTATUS*			result_partner;		///< 交換相手のデータコピー
	POKEMON_PARAM*		result_sendPoke;	///< 自分が送信するポケモンデータのコピー
	POKEMON_PARAM*		result_recvPoke;	///< 交換相手のポケモンデータのコピー

}TRADELIST_PARAM;


///< ポケモン交換画面ワーク構造体（ポインタ参照だけできる）
typedef struct TRADELIST_WORK TRADELIST_WORK;


extern PROC_RESULT TradeListProc_Init( PROC * proc, int * seq );
extern PROC_RESULT TradeListProc_Main( PROC * proc, int * seq );
extern PROC_RESULT TradeListProc_End( PROC * proc, int * seq );



#endif //_TRADELIST_DEF_H_